﻿CREATE OR REPLACE FUNCTION nuevoservicio(integer, numeric, character varying)
  RETURNS void AS
$BODY$
INSERT INTO servicio (idcarga, montoservicio,tipo) VALUES ($1, $2, $3);
$BODY$
  LANGUAGE sql VOLATILE
  COST 100;
ALTER FUNCTION nuevoservicio(integer, numeric, character varying) OWNER TO postgres;

--Select NuevoServicio(1 , 2 , 'aforo')


CREATE OR REPLACE FUNCTION NuevoCliente(varchar(200), varchar(200),varchar(200), integer) RETURNS void AS $$
INSERT INTO cliente (nombre, apellido, direccion, telefono) VALUES ($1, $2, $3, $4);
$$ LANGUAGE SQL;

--Select NuevoCliente('Jose','Torres','BLABLABLA',23948304)

CREATE OR REPLACE FUNCTION NuevaCarga(integer, integer, numeric(2,0), boolean, varchar(11), numeric(2,0), boolean) RETURNS void AS $$
	BEGIN 
	  INSERT INTO carga (idcliente, idrack, fechaingreso, peso, estado, movimiento, montoc, refrigerada)
	  VALUES($1,$2,cast(CURRENT_TIMESTAMP as timestamp), $3,$4,$5,$6,$7);
	END
$$ LANGUAGE plpgsql;

Select NuevaCarga(3,3, cast(30 as numeric(2,0)),true,cast('Exportacion' as varchar(11)), cast(0 as numeric(2,0)),false)

--UPDATE carga SET idcliente=1, idrack=4, peso= cast(60 as numeric(2,0)), estado=true, movimiento=cast('exportacion'as varchar(11)), montoc=cast(0 as numeric(2,0)), refrigerada=false WHERE idcarga=6

CREATE OR REPLACE FUNCTION NuevoAlmacen(integer) RETURNS void AS $$
INSERT INTO almacen(estado, capacidad, espaciolibre) VALUES (false, $1, $1);
$$ LANGUAGE SQL;

CREATE OR REPLACE FUNCTION NuevoRack(integer, integer, integer) RETURNS void AS $$
INSERT INTO rack(idalmacen, fila, columna) VALUES ($1, $2, $3);
$$ LANGUAGE SQL;

